<?php

namespace CMS\Update\Models;
/**
 * Pomocne funkce pro entitni tridu Update.
 *
 * @author David Dusek
 */

use Doctrine\ORM\EntityRepository;

class UpdateRepository extends EntityRepository {
           
    /**
     * Vyber vsech aktualizaci ktere probehli po aktualni a ktere budou 
     * odstraneny.
     * @param DateTime $date Datum od ktere aktualizace chceme novejsi.
     * @return array 
     */
    public function getNewer($date) {
        $qb = $this->_em->createQueryBuilder();
        $qb = $qb->select('u')
                 ->from("\CMS\Update\Models\Update", 'u')
                 ->where("u.date > :date")
                 ->setParameter("date", $date, \Doctrine\DBAL\Types\Type::DATETIME);       
        
        $result = $qb->getQuery()->getResult();   
        return $result;
    }
    
    /**
     * Vyhledani posledniho (nejnovejsiho) zaznamu o vzdalene aktualizaci.
     * @return mixed Nalezeny zaznam nebo FALSE. 
     */
    public function getLast() {
        $qb = $this->_em->createQueryBuilder();
        $qb = $qb->select('u')
                 ->from("\CMS\Update\Models\Update", 'u')
                 ->orderBy("u.date", "desc")
                 ->setMaxResults(1);
        try {
            $result = $qb->getQuery()->getSingleResult();
        } catch (\Doctrine\ORM\NoResultException $e) {
            $result = FALSE;
        }
        
        return $result;
    }
}
